package com.ccnu.JobHub.config;

import org.springframework.context.annotation.Bean;
import org.springframework.lang.NonNull;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

public class CorsConfig {
    /**
     * 配置跨域请求处理
     * 此方法定义了一个Bean，用于配置Web MVC的跨域资源共享（CORS）设置
     * 它允许来自不同域的请求访问应用的服务
     *
     * @return WebMvcConfigurer 一个配置器实例，用于配置跨域请求处理
     */
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            /**
             * 添加跨域映射配置
             * 此方法配置了跨域请求的映射规则，允许所有来源（"*"）的请求访问应用的所有路径（"/**"）
             * 支持的HTTP方法包括GET、POST、PUT和DELETE，同时允许所有类型的请求头（"*"）
             *
             * @param registry CorsRegistry实例，用于注册跨域映射规则
             */
            @Override
            public void addCorsMappings(@NonNull CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedOrigins("*")
                        .allowedMethods("GET", "POST", "PUT", "DELETE")
                        .allowedHeaders("*");
            }
        };
    }
}
